package org.framework.wu.framework.queue;

/**
 * 消息队列接口定义
 */
public interface MessageQueue {
    
    /**
     * 发送消息到队列
     * @param message 消息对象
     * @return 发送是否成功
     */
    boolean send(Message message);
    
    /**
     * 从队列接收消息（阻塞方式）
     * @return 接收到的消息，如果队列为空则阻塞等待
     */
    Message receive();
    
    /**
     * 从队列接收消息（非阻塞方式）
     * @return 接收到的消息，如果队列为空则返回null
     */
    Message receiveNoWait();
    
    /**
     * 获取队列中的消息数量
     * @return 消息数量
     */
    int size();
    
    /**
     * 判断队列是否为空
     * @return 如果队列为空返回true，否则返回false
     */
    boolean isEmpty();
    
    /**
     * 关闭队列
     */
    void close();
}
